package ar.edu.utn.frgp.Banco.actions;

import ar.edu.utn.frgp.Banco.model.Cuenta;
import ar.edu.utn.frgp.Banco.model.CuentaDTO;
import ar.edu.utn.frgp.Banco.service.IRecursoService;
import ar.edu.utn.frgp.Banco.service.BusinessException;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import org.springframework.beans.factory.annotation.Autowired;

public class CuentaModificarAction extends ActionSupport implements
		ModelDriven<CuentaDTO> {

	private static final long serialVersionUID = 1L;

	private String msj;

	private CuentaDTO cuentaDto = new CuentaDTO();
	@Autowired
	private IRecursoService recursoService;

	@Override
	public String execute() {
		try {

			Cuenta cuenta = new Cuenta();

			if (!(cuentaDto.getDni() == null)) {
				int dni = Integer.parseInt(cuentaDto.getDni());
				cuenta.setDni(dni);
			}

			if (!(cuentaDto.getNrocuenta() == null ) || (cuentaDto.getNrocuenta().isEmpty())) {
				int nrcuenta = Integer.parseInt(cuentaDto.getNrocuenta());
				cuenta.setNrocuenta(nrcuenta);
			}

//			if (!(cuentaDto.getSaldo() == null ) || (cuentaDto.getSaldo().isEmpty())) {
//				double saldo = Double.parseDouble(cuentaDto.getSaldo());
//				cuenta.setSaldo(saldo);
//			}

			if (!(cuentaDto.getDescubierto() == null ) || (cuentaDto.getDescubierto().isEmpty())) {
				double descubierto = Double.parseDouble(cuentaDto
						.getDescubierto());
				cuenta.setDescubierto(descubierto);
			}

				cuenta.setEstado(1);

			if (!(cuentaDto.getTipo() == null ) || (cuentaDto.getTipo().isEmpty())) {

				int tipo = Integer.parseInt(cuentaDto.getTipo());
				cuenta.setTipo(tipo);
			}

			recursoService.modificarCuenta(cuenta);

		} catch (BusinessException ex) {
			setMsj(ex.getMessage());
		} catch (Exception e) {
			e.printStackTrace();
			return ERROR;
		}
		return SUCCESS;
	}

	public CuentaDTO getModel() {
		return cuentaDto;
	}

	public String getMsj() {
		return msj;
	}

	public void setMsj(String msj) {
		this.msj = msj;
	}

}